package com.zhoug.zmui.date;

import java.util.Date;

/**
 * 日期选择接口
 *
 * @Author 35574
 * @Date 2021/4/27
 * @Description
 */
public interface DateSelectInterface {
    int MODE_DATE = 1;//0001 年月日
    int MODE_TIME = 2;//0010 时分
    int MODE_DATE_TIME = 3;//0011 年月日 时分

    int HORIZONTAL=0;//水平对齐
    int VERTICAL=1;//垂直对齐


    /**
     * 设置选择的日期
     *
     * @param timeInMillis
     */
    void setSelect(long timeInMillis);

    /**
     * 设置选择的日期 需要先设置dateFormat
     *
     * @param select
     */
    void setSelect(String select);

    /**
     * 获取选择的日期
     *
     * @return
     */
    Date getDate();

    /**
     * 获取选择的日期字符串,用设置的dateFormat,没有设置就用默认的
     *
     * @return
     */
    String getDateString();

    /**
     * 获取选择的日期字符串
     *
     * @param format
     * @return
     */
    String getDateString(String format);

    /**
     * 日期选择默认,
     * {@link #MODE_DATE } 日期
     * {@link #MODE_TIME } 时间
     * 日期时间MODE_TIME|MODE_TIME
     * @param mode
     */
    void setMode(int mode);

    /**
     * 选择的年
     * @param selectYear
     */
    void setSelectYear(int selectYear);

    /**
     * 选择的月
     * @param selectMonth
     */
    void setSelectMonth(int selectMonth);

    /**
     * 选择的日
     * @param selectDay
     */
    void setSelectDay(int selectDay);

    /**
     * 选择的时
     * @param selectHour
     */
    void setSelectHour(int selectHour);

    /**
     * 选择的分
     * @param selectMinute
     */
    void setSelectMinute(int selectMinute);

    /**
     * 设置日期格式
     * @param dateFormat
     */
    void setDateFormat(String dateFormat);

    /**
     * 设置允许选择的最大日期
     * @param maxTimeInMillis
     */
    void setMaxDate(long maxTimeInMillis);

    /**
     * 设置允许选择的最大日期,需要先设置dateFormat
     * @param maxDate
     */
    void setMaxDate(String maxDate);

    /**
     * 设置允许选择的最小日期
     * @param minTimeInMillis
     */
    void setMinDate(long minTimeInMillis);

    /**
     * 设置允许选择的最小日期,需要先设置dateFormat
     * @param minDate
     */
    void setMinDate(String minDate);

    /**
     * 最小年
     * @param minYear
     */
    void setMinYear(int minYear);

    /**
     * 最大年
     * @param maxYear
     */
    void setMaxYear(int maxYear);

    /**
     * 最小月
     * @param minMonth
     */
    void setMinMonth(int minMonth);

    /**
     * 最大月
     * @param maxMonth
     */
    void setMaxMonth(int maxMonth);

    /**
     * 最小日
     * @param minDay
     */
    void setMinDay(int minDay);

    /**
     * 最大日
     * @param maxDay
     */
    void setMaxDay(int maxDay);

    /**
     * 最小时
     * @param minHour
     */
    void setMinHour(int minHour);

    /**
     * 最大时
     * @param maxHour
     */
    void setMaxHour(int maxHour);

    /**
     * 最小分
     * @param minMinute
     */
    void setMinMinute(int minMinute);

    /**
     * 最大分
     * @param maxMinute
     */
    void setMaxMinute(int maxMinute);

}
